iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
DevOps

把玩Azure DevOps系列 第 17

【把玩Azure DevOps】Day17 CI/CD從這裡:Pipeline設定Schedule,每日晚上排程執行

  • 分享至 

  • xImage
  •  

現在有不少的軟體會有一個特殊的版本叫Nightly,從字面上的意思就可以得知是指每個晚上發行的版本,而這個每晚發佈一個版本基本上都是靠Pipeline在晚上的時候執行build的動作,完成之後將該版發佈出來,是一個比alpha、beta這些迭代更快速的版本,如果要達成這樣的排程設計,在Azure DevOps Pipeline上要怎麼做呢?

在Azure DevOps要設定排程執行Pipeline其實有兩種方式,一種是Yaml內透過文字設定的方式,要透過cron語法來進行設定,可以參考官網的說明頁面。另一種是透過UI的介面進行設定,在官網說明頁面上稱為「傳統(classic)」的設定方式。

這邊我們不透過Yaml的方式來做設定,使用比較簡單的UI進行操作。(註:UI定義的排程優先於Yaml排程)

首先,來到Edit Pipeline來到輯編畫面之後,同樣右上角的地方將隱藏的功能選單叫出來,然後按下Triggers進入設定的畫面(沒錯,不是Settings,我覺得Triggers更適合叫Settings,因為Triggers裡面的設定比Settings裡面可以設定的項目更多):

https://ithelp.ithome.com.tw/upload/images/20210929/200339616QYVnh5ChO.png

接著會進入到Triggers的設定畫面,在左畫面的Scheduled右邊有個「+ Add」可以增加Schedule排程的設定,會在Scheduled下面多一列設定,而設定的內容則是顯示在右畫面:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961E9BcawzeGA.png

從上圖右畫面可以看到設定方式非常簡單,只需要勾選星期幾要觸發,並且設定觸發的時間。如果勾選下面的Only schedule builds if the source or pipeline has changed,系統可以避免在Repo內容或Pipeline設定沒有變動的時候觸發,可以節省資源。

如果需要設定多個不同的觸發條件,例如:星期一到五的工作日是早上6點排程建置,六、日兩天則是凌晨1點進行Build的動作,甚至是不同時區的時間設定觸發,只需要在左畫面再度按下「+ Add」新增規則即可:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961D3GkV5KEHu.png

至於右畫面時間設定的下方Branch filters設定則是對應上方的Only schedule builds if the source or pipeline has changed勾選設定使用,讓Schedule判斷所選的分支內容是否有異動,並不影響Yaml內的Source存取(兩者無直接關係)。

從Pipeline的Runs清單中則是可以看出來不同Run是由排程觸發、CI觸發還是人為手動觸發執行:

https://ithelp.ithome.com.tw/upload/images/20210929/20033961jGIUJwpS82.png

像我們公司就有Pipeline是設定中午休息時間執行一次,凌晨執行一次,分別對應當天上午的Commit與下班後到隔天上班前的Commit建置結果。


上一篇
【把玩Azure DevOps】Day16 Artifacts應用:讓外部合作夥伴也可以從Private nuget安裝Package
下一篇
【把玩Azure DevOps】Day18 CI/CD從這裡:Pipeline設定Yaml以外的Trigger方式
系列文
把玩Azure DevOps30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言